package com.xiaoshuidi.cloud.module.contract.controller.admin.bill.vo.rentOrder;

import com.xiaoshuidi.cloud.module.contract.controller.admin.bill.vo.orderFees.OrderFeesVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;


@Data
@Accessors(chain = true)
public class RentOrderCreateReq {

    /**
     * 合同id
     */
    @Schema(description = "合同id")
    @NotNull(message = "合同id不能为空")
    private Long contractId;

    /**
     * 公寓id
     */
    @Schema(description = "公寓id")
    private Long apartmentId;
    /**
     * 公寓名称
     */
    @Schema(description = "公寓名称")
    private String apartmentName;

    /**
     * 关联房间
     */
    @Schema(description = "关联房间id")
    private Long roomId;

    /**
     * 房间名称
     */
    @Schema(description = "房间名称")
    private String roomName;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    @NotNull(message = "开始时间不能为空")
    private LocalDate startTime;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    @NotNull(message = "结束时间不能为空")
    private LocalDate endTime;

    /**
     * 收款时间
     */
    @Schema(description = "收款时间")
    @NotNull(message = "收款时间 不能为空")
    private LocalDate oughtPayTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 费项集合
     */
    @Schema(description = "费项")
    private List<OrderFeesVo> orderFeesVo;

    /**
     * 账单类型
     */
    private String orderType;

    /**
     * 个人客户时不为空, 租户ID
     */
    private Long memberId;

    /**
     * 工单id
     */
    @Schema(description = "工单id")
    private Long sowTicketId;
}
